Micron Document




TianoCore EDK II
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
TianoCore EDK II (formerly Tiano) is the reference implementation of UEFI by Intel. EDK is the abbreviation for EFI Development Kit and is developed by the TianoCore community.cite-ref-0-1-0[1] TianoCore EDK II is the de facto standard generic UEFI services implementation.cite-ref-2[2]

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

History

In 2004, Intel released their "Foundation Code" of their EFI implementation using a free license.cite-ref-0-1-1[1] The resulting code formed the basis of the community-run EDK project on SourceForge, started in 2004. The name "Tiano" was present in the initial Intel code.cite-ref-3[3] The last update to the EDK (version 1) project happened in May 2010.cite-ref-4[4] Version 2 is in active development.cite-ref-5[5]

An "edk2" project was imported into SourceForge in April 2006, with a package-oriented code base again written by Intel. The initial "DeveloperManual" referred to this project as "Tiano R9".cite-ref-6[6] In 2008, a stable, validated version of EDK II was tagged as "UEFI Development Kit 2008" (UDK2008). The tag includes a BuildNotes.txt dating to November 2006 describing the code found in the initial import, and a BuildNotes2.txt describing modules added in May 2008.cite-ref-7[7] UDK2010 was the first version of EDK II to be widely known.cite-ref-8[8] Intel would continue to validate certain snapshots of EDK II as UDK until 2018, when EDK II moved into a "stable tag" format.cite-ref-9[9]

In December 2023 a vulnerability termed "LogoFAIL" was discovered associated with EDK II which enabled an attacker to insert their own code in place of custom boot logo bitmap loader modules.cite-ref-binarly-10-0[10]

Although EDK II implements the UEFI specification, it is not endorsed by the UEFI Forum.cite-ref-0-1-2[1]

Projects

EDK II code has been integrated into other projects.

A part of TianoCore is the UEFI shell. When a specific UEFI vendor does not provide a UEFI shell, the one from TianoCore can be used.cite-ref-11[11]

Google uses a version of coreboot modified to launch Tiano. This feature is called PIANO (payload into Tiano) or tianocoreboot. PIANO code was merged into coreboot in 2013.cite-ref-12[12] The code was updated to be compatible with EDK II in 2017.cite-ref-13[13]

EDK2 source code includes instructions for building as a payload for coreboot or Intel's "slim bootloader".cite-ref-14[14]

Project Mu is a fork of EDK-II by Microsoft.cite-ref-15[15]cite-ref-16[16] It is an open source release of the UEFI core used in Microsoft Surface and Hyper-V products initiated by Microsoft in December 2018.cite-ref-17[17] The project promotes the idea of firmware as a service.cite-ref-18[18] The project was started to build on TianoCore's EDK II implementation to improve modularity and increase the quality of tests when building UEFI firmware.cite-ref-19[19]

EFIDroid is a bootloader for Android devices based on Snapdragon processors that is based on EDK II.cite-ref-20[20]

References

cite-note-0-11. "What is TianoCore?". www.tianocore.org. Retrieved 2021-03-26.
cite-note-22. citerefh-usercheptsov2020Häuser, Marvin; Cheptsov, Vitaly (2020). "Securing the EDK II Image Loader". 2020 Ivannikov Ispras Open Conference (ISPRAS). pp. 16–25. arXiv:2012.05471. doi:10.1109/ISPRAS51486.2020.00010. ISBN 978-1-6654-1291-9. S2CID 228084173.
cite-note-33. "tianocore/edk". tianocore. 9 March 2023.
cite-note-44. "Commits · tianocore/edk". GitHub.
cite-note-55. "Releases · tianocore/edk2". GitHub. Retrieved 2024-02-23.
cite-note-66. "EDK II / Code / [r29574] /tags/InitialImport". sourceforge.net.
cite-note-77. "EDK II Project". tianocore. 18 May 2023.
cite-note-88. citerefbarry2012Barry, Peter (2012). Modern embedded computing : designing connected, pervasive, media-rich systems. Patrick Crowley. Amsterdam: Elsevier/Morgan Kaufmann. p. 173. ISBN 978-0-12-394407-8. OCLC 778434967.
cite-note-99. "UDK". tianocore documentation (GitHub).
cite-note-binarly-1010. "The Far-Reaching Consequences of LogoFAIL". Binarly. November 29, 2023.
cite-note-1111. citerefbabar2020Babar, Yogesh (2020). Hands-on booting learn the boot process of Linux, Windows, and Unix. Berkeley, CA: Apress L. P. p. 119. ISBN 978-1-4842-5890-3. OCLC 1164505064.
cite-note-1212. "Google Pushes "Project PIANO" Into Coreboot - Phoronix". www.phoronix.com. Retrieved 2021-03-26.
cite-note-1313. "Coreboot Now Has Basic UEFI Support Working With TianoCore - Phoronix". www.phoronix.com. Retrieved 2021-03-26.
cite-note-1414. "EDK II Project: BuildAndIntegrationInstructions.txt". GitHub. tianocore. 18 May 2023.
cite-note-1515. "Microsoft releases Mu open-source UEFI firmware | bit-tech.net". Bit-tech. Retrieved 2021-03-26.
cite-note-1616. "Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix". www.phoronix.com. Retrieved 2021-03-26.
cite-note-1717. Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
cite-note-1818. "Microsoft announces Project Mu, an open-source release of the UEFI core". 20 December 2018.
cite-note-1919. "Microsoft announces Project Mu to promote Firmware as a Service". 16 June 2023.
cite-note-2020. "EFIDroid: A Second-Stage Bootloader Using UEFI Firmware to Multiboot [XDA Spotlight]". xda-developers. 2017-03-06. Retrieved 2021-03-26.

External links

• Official website
• EDK II on GitHub
• Project Mu BaseCore on GitHub